c++类成员函数的inline属性 您所在的位置:网站首页 c 函数属性 c++类成员函数的inline属性

c++类成员函数的inline属性

2023-07-24 02:34| 来源: 网络整理| 查看: 265

问题

类成员函数添加inline关键字的原因是什么,为什么存在?

为什么存在?

Bjarne在《The Design and Evolution of C++ 》中描述“带类的C”时有相关介绍:

将inline函数引进带类的C,直接原因是一个具体的项目。在该项目中,由于某些类与实时处理有关,这种函数调用的开销是无法接受的;为了使类机制能够成为在这个应用中有用的东西,就要求在跨越保护屏障时不付出任何代价。只有在类声明中提供一种可用表示,并能把对公用(界面)函数的调用变成在线的(inline),才可能达到这个目的。

所以在对类的使用上,inline被认为是非常中重要的机制; 为了满足C++的设计准则之一:

只提供一个特征是不够的,还必须以一种实际上可以负担得起的形式来提供它。在这里,可以负担得起意味着”使用常见硬件的开发者可以负担”,而不是”使用高端设备的研究者可以负担”或者“若干年之后,当硬件变得更便宜之后就可以负担”。 总结一下归到零开销抽象上。

设计与使用

为了提供在线机制,有两种策略:

把在线问题留给编译程序去做,因为“编译系统对事情了解的最清楚”。程序中写出要求在线,编译程序有了时间/空间优化的概念时,在进行在线处理。

C++使用了第二中策略,然类的成员函数做成在线的方式有如下两种写法:

// 第一种写法 class stack { /*...*/ char pop() { if (top if (top


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

      专题文章
        CopyRight 2018-2019 实验室设备网 版权所有